In the design of computer software systems, it is considered advantageous to associate each data item with a data type, and to present a relatively uniform interface to objects of each data type to all elements of the system. This technique allows elements of the system to rely on the characteristics of the data type, of the uniform interface to that data type. and of the relationships between that data type and other data types.
In addition to so-called “built in” data types, such as integers and floating point numbers, it is also considered advantageous to extend this technique to more complex data types, called “classes,” including classes defined by the user of a system. A class represents a category of objects. For example, there might be a class called “shape” that contains objects that are circles, rectangles, and triangles. A class defines all the common properties of the different objects that belong to it. For example, a user might define a class called “telephone number”, thereby allowing elements. of the system to store, manipulate, and retrieve telephone numbers as if they were fundamental pieces of information. Techniques for defining classes of data objects and restricting access to those objects are now commonplace.
The technique of defining classes of data objects and manipulating those objects has been useful in database applications as well. In object-oriented database (OODB) applications, a user defines classes of objects, properties of those classes, and relationships between those classes, and populates a database with data items that are instances of those objects. Object-oriented database management techniques now provide the advantages of rapid application and database development, as well as relative software reliability.
Today, organizations now regularly employ so-called business Intelligence (BI) tools, such as decision support systems (DSS) that leverage object-oriented data management techniques to enhance their managers' ability to make timely and accurate decisions by presenting data gathered for them from a wide range of sources. With the decisions being made by senior management often based on information passed to them by subordinates, and subordinates typically receiving only that information relevant to their area of responsibility, the result has been that the dissemination of data often falls along areas of responsibility, and therefore mimics the hierarchal structure of a business.
The problem is that today's information systems, particularly in the area of planning, have typically had to rely on manual techniques or scripts to extract data for individual users. These techniques require a high level of maintenance and are limited in their ability to track changes to delivered data sets.
What is needed is a way to provide a formal, single point of reference for defining how a data set is to be populated or “burst” across the organizational structure of a business to provide a single central location for maintenance, as well as to effectively track changes to those generated data sets, all in accordance with the superior performance of object-oriented data management techniques.
For the foregoing reasons, there is a need for an improved method and system for modeling the partitioning and delivery of data within an object-oriented organizational model.